//package com.example.jie.controll;
//
//import org.springframework.http.HttpStatus;
//import org.springframework.http.ResponseEntity;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
//import java.io.IOException;
//
//@RestController
//@RequestMapping("task")
//public class UploadControll {
//
//    @RequestMapping("hello")
//    public String hello(){
//        return "Hello";
//    }

//    @PostMapping("/upload")
//    public ResponseEntity<?> upload(@RequestParam("file") MultipartFile file,
//                                        @RequestParam("fileName") String fileName,
//                                        @RequestParam("chunkNumber") Integer chunkNumber,
//                                        @RequestParam("totalChunks") Integer totalChunks) {
//        try {
//                // 创建临时目录
//                File tempDir = new File("D:/a大三下实习/ge实习/split_upload_end/project/test1");
//                if (!tempDir.exists()) {
//                    tempDir.mkdirs();
//                }
//                // 将上传的分片写入临时文件
//                File tempFile = new File(tempDir, fileName + "-" + chunkNumber);
//                file.transferTo(tempFile);
//                // 检查所有分片是否已上传
//                if (chunkNumber.equals(totalChunks)) {
//                    // 所有分片已上传，开始合并文件
//                    String destPath = "D:/a大三下实习/ge实习/split_upload_end/project/test2/" + fileName;
//                    FileOutputStream fos = new FileOutputStream(destPath);
//                    for (int i = 1; i <= totalChunks; i++) {
//                        File chunk = new File(tempDir, fileName + "-" + i);
//                        FileInputStream fis = new FileInputStream(chunk);
//                        byte[] buffer = new byte[1024];
//                        int len;
//                        while ((len = fis.read(buffer)) != -1) {
//                            fos.write(buffer, 0, len);
//                        }
//                        fis.close();
//                        chunk.delete(); // 删除临时文件
//                    }
//                    fos.close();
//                }
//                return ResponseEntity.ok().build();
//            } catch (IOException e) {
//                e.printStackTrace();
//                return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
//            }
//        }
//
//    @PostMapping("/uploadFile")
//    public ResponseEntity<?> upload(@RequestParam("file") MultipartFile file,
//                                    @RequestParam("fileName") String fileName,
//                                    @RequestParam("chunkNumber") Integer chunkNumber,
//                                    @RequestParam("totalChunks") Integer totalChunks) {
//        try {
//            // 创建临时目录
//            File tempDir = new File("D:/a大三下实习/ge实习/split_upload_end/project/test1");
//            if (!tempDir.exists()) {
//                tempDir.mkdirs();
//            }
//            // 将上传的分片写入临时文件
//            File tempFile = new File(tempDir, fileName + "-" + chunkNumber);
//            file.transferTo(tempFile);
//            // 检查所有分片是否已上传
//            if (chunkNumber.equals(totalChunks)) {
//                // 所有分片已上传，开始合并文件
//                String destPath = "D:/a大三下实习/ge实习/split_upload_end/project/test2/" + fileName;
//                FileOutputStream fos = new FileOutputStream(destPath);
//                for (int i = 1; i <= totalChunks; i++) {
//                    File chunk = new File(tempDir, fileName + "-" + i);
//                    FileInputStream fis = new FileInputStream(chunk);
//                    byte[] buffer = new byte[1024];
//                    int len;
//                    while ((len = fis.read(buffer)) != -1) {
//                        fos.write(buffer, 0, len);
//                    }
//                    fis.close();
//                    chunk.delete(); // 删除临时文件
//                }
//                fos.close();
//            }
//            return ResponseEntity.ok().build();
//        } catch (IOException e) {
//            e.printStackTrace();
//            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
//        }
//    }
//    }

